﻿using EFDataModel.Enums;

namespace ContactManagement
{
    /// <summary>
    /// Erstellt ganze URLs oder nur teilURLs, auf die verwiesen werden kann.
    /// Dabei kann z.b. auch der typ dynamic genutzt werden.
    /// </summary>
    public static class URLBuilder
    {
        /// <summary>
        /// Verweist auf die Passende Liste mit der übergebenen Kategorie
        /// </summary>
        /// <param name="efCategoryType">ide Kategorienliste die angezeigt werden soll</param>
        public static dynamic ShowCategoriesList(EFCategoryTypes efCategoryType)
        {
            return new { controller = EControllers.Administration.ToString(), category = efCategoryType.ToString(), action = EActionAdministration.CategoriesList.ToString() };
        }

        /// <summary>
        /// Gibt den Dynamic Typ zurück um auf die UserGroupListe zu verweisen für die übergebene GroupId
        /// </summary>
        /// <param name="userGroupId">Die UserGroupId für die die Mitgleider angezeigt werden soll</param>
        public static dynamic UserGroupsShowUsers(int userGroupId)
        {
            return new { controller = EControllers.Administration.ToString(), category = EFCategoryTypes.UserGroups.ToString(), action = EActionAdministration.UserGroupsShowUsers.ToString(), id = userGroupId };
        }

        /// <summary>
        /// Gibt den Dynamic Typ zurück um auf die UserRightListe zu verweisen für die übergenene userRightId
        /// </summary>
        /// <param name="userRightId">Die UserGroupId für die die Mitgleider angezeigt werden soll</param>
        public static dynamic UserRightsShowUsers(int userRightId)
        {
            return new { controller = EControllers.Administration.ToString(), category = EFCategoryTypes.UserRights.ToString(), action = EActionAdministration.UserRightsShowUsers.ToString(), id = userRightId };
        }

        /// <summary>
        /// Gibt den Dynamic Typ zurück um auf die Rights der übergenenen Gruppe zu verweisen
        /// </summary>
        /// <param name="groupId">Die GRoupId für die die Rights angezeigt werden sollen</param>
        public static dynamic GroupShowRights(int groupId)
        {
            return new { controller = EControllers.Administration.ToString(), category = EFCategoryTypes.UserGroups.ToString(), action = EActionAdministration.UserGroupsShowRights.ToString(), id = groupId };
        }
    }
}